import sys
sys.path.append('/Users/zian/Documents/own/own/guzian')

from guzian_app.models import get_db, VisitStat
from datetime import datetime, timedelta
import random

def add_mock_visit_data():
    """添加过去30天的模拟访问数据"""
    db = next(get_db())
    
    # 获取当前日期
    today = datetime.now().date()
    
    # 为过去30天生成模拟数据
    for i in range(30):
        date = today - timedelta(days=i)
        
        # 检查该日期是否已有数据
        existing = db.query(VisitStat).filter(VisitStat.visit_date == date).first()
        if not existing:
            # 生成合理的访问量数据（周末访问量略高）
            day_of_week = date.weekday()
            if day_of_week in [5, 6]:  # 周六、周日
                base_visits = random.randint(90, 120)
            else:  # 工作日
                base_visits = random.randint(30, 70)
            
            # 添加一些随机波动
            visit_count = max(1, int(base_visits * (0.8 + random.random() * 0.4)))
            
            # 创建新的访问统计记录
            new_visit = VisitStat(
                visit_date=date,
                visit_count=visit_count
            )
            db.add(new_visit)
            print(f"添加日期 {date} 的模拟访问量: {visit_count}")
    
    # 保存到数据库
    try:
        db.commit()
        print("模拟访问数据添加成功！")
    except Exception as e:
        db.rollback()
        print(f"添加数据时出错: {e}")
    finally:
        db.close()

if __name__ == "__main__":
    add_mock_visit_data()